﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TimeTabling.CORE
{
    /// <summary>
    ///  Clase que contendra la informacion del centro
    /// </summary>
    public class Center : Template
    {
        #region variables miembro
            private IList<Classroom> classrooms = null;
            /*hay un horario durante todo el año, pero de 8-12 es un horario, de 14-18 es otro horario, y de 21-22 es otro*/
            private IList<Schedule> schedules = null;
        #endregion 

        /* region es para el botoncito " - " a la izq*/
        #region Estado

 /* ESTA ESTA YA NO SE UTILIZA PORQUE SE HEREDA DE tEMPLATE
  * /// <summary>
        /// Identificador de Center
        /// </summary>
        public Guid ID { get; set; }*/
        /* classrooms con minuscula es una variable miembro */
        /// <summary>
        /// Variable miembro de la lista... 
        /// </summary>
        
        /* lo anterior se lee como que "la isntancia List<Classroom>() cumple el contrato de IList<Classroom>"*/

        /// <summary>
        /// Nombre del centro
        /// </summary>
        public String Name { get; set; }
        /* como son muchas aulas, utilizaremos una coleccion, la mas usada es una lista. La cual
         * utilizamos en éste caso. Center.Classrooms te daria acceso a todas las aulas que tiene el centro
         * Ilist se lee como "una coleccion de aulas" 
         
         * Estableceremos una lista vacia:
            que se puede hacer de dos maneras. */

        /// <summary>
        /// CIF del centro
        /// </summary>
        public String CIF { get; set; }

        /// <summary>
        /// Direccion del centro
        /// </summary>
        public String Address { get; set; }

        /// <summary>
        /// Telefono de contacto del centro
        /// </summary>
        public String Phone { get; set; }

        /// <summary>
        /// Correo electronico del centro
        /// </summary>
        public String Email { get; set; }
        /// <summary>
        /// Lista de aulas que tiene el centro
        /// </summary>
        public IList<Classroom> Classrooms
        {
            get
            {/*con este get obtenemos una lista vacia (mira el private ilistclasrooms arriba) */
                if (classrooms == null)
                {
                    classrooms = new List<Classroom>();
                }
                return classrooms;
            }

            set 
            {
                classrooms = value;
            }
        }
        /// <summary>
        /// Lista de horarios que tiene el centro
        /// </summary>
        public IList<Schedule> Schedules
        {
            get
            {
                if (schedules == null)
                {
                    schedules = new List<Schedule>();
                }
                return schedules;
            }

            set
            {
                schedules = value;
            }
        }   


        #endregion
    }
    // las propiedades van en una region. 
}
